A video encoder is a device which compresses video signals down to a size suitable for storage and/or transmission. For example, a television broadcasting station may use a video encoder to compress video data captured by a television news crew. The compressed video data then may be broadcast to one or more receivers (e.g., television sets), where the video data is decompressed by a video decoder and is shown on a video display.
Video data generally comprises a series of still images, known as “frames.” Frames are input to a video encoder for encoding. A video encoder generally comprises an output buffer which stores encoded frames until the encoder is ready to remove the frames from the buffer. In some cases, the encoder encodes frames faster than a desired rate and the output buffer becomes full, thereby creating a backlog of encoded frames which need to be output by the encoder. In other cases, the encoder encodes frames slower than a desired rate and the output buffer becomes empty, thereby creating a shortage of encoded frames to be output by the encoder. The frame output rate of the video encoder is undesirably affected in each of these cases.